#! -*- coding: utf-8 -*-
"""
@Info: schema信息
"""
# 1. 所属生产中心 -> 工作站。是否考虑工作站编号？
# 2. 所属产品 -> 产品。产品名称？产品编号？
# 3. 实际开始时间 -> 保留，有其他时间
BASE_SCHEMA = ['MO状态', 'TSK实际结束时间', 'MO重排前预计交付时间', '优先级', 'MO重排差异', '订单编号',
               'TSK排程结束时间', 'TSK实际开始时间',
               'SO交付时间', 'TASK状态', '任务编号', '产品', 'TSK延期时间', 'TSK排程开始时间', '工作站名称',
               'MO延期时间', 'MO重排后预计交付时间']

NER_SCHEMA = [{'operate_type': '0', 'schema': ['未定义']}, {'operate_type': '1', 'schema': ['任务编号']},
              {'operate_type': '2', 'schema': ['工作站名称']}, {'operate_type': '3', 'schema': ['订单编号']},
              {'operate_type': '4', 'schema': ['产品']}, {'operate_type': '5', 'schema': ['优先级']},
              {'operate_type': '6', 'schema': ['SO交付时间']},
              {'operate_type': '9', 'schema': ['TSK排程结束时间', '订单编号']},
              {'operate_type': '11', 'schema': ['TASK状态']}, {'operate_type': '12', 'schema': [
        'MO状态']}, {'operate_type': '13', 'schema': ['TSK排程开始时间']},
              {'operate_type': '14', 'schema': ['TSK排程结束时间']},
              {'operate_type': '15', 'schema': ['TSK实际开始时间']},
              {'operate_type': '16', 'schema': ['TSK实际结束时间']}, {'operate_type': '17', 'schema': ['TSK延期时间']},
              {'operate_type': '19', 'schema': ['MO重排前预计交付时间']},
              {'operate_type': '20', 'schema': ['MO重排后预计交付时间']},
              {'operate_type': '21', 'schema': ['MO重排差异']}, {'operate_type': '22', 'schema': ['MO延期时间']}]


def get_schema(operate_type):
    """获取对应的schema信息"""
    for item in NER_SCHEMA:
        if item['operate_type'] == operate_type:
            return item['schema']
    return BASE_SCHEMA


def get_operate_type(schema):
    """获取对应的schema信息"""
    for item in NER_SCHEMA:
        if item['schema'][0] == schema:
            return item['operate_type']
    return BASE_SCHEMA


if __name__ == '__main__':
    import json

    with open('schema.txt', 'w', encoding='utf-8') as f:
        f.write(json.dumps(NER_SCHEMA, ensure_ascii=False))
